package com.doctcloud.hisystem.tables.domain.common;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.doctcloud.common.core.annotation.Excel;
import com.doctcloud.common.core.annotation.TableDesc;
import com.doctcloud.common.core.web.domain.BaseEntity;
import lombok.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

import static com.doctcloud.common.core.utils.StringUtils.trim;

@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(of = {"dictId"})
@ToString
@Data
@TableName("SYS_DICT_TYPE")
@TableDesc("字典清单")
public class SysDictTypeEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @TableId
    @Excel(name = "字典主键", cellType = Excel.ColumnType.NUMERIC)
    private BigInteger dictId;

    @Excel(name = "字典名称")
    @NotBlank(message = "字典名称不能为空")
    @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
    private String dictName;

    @Excel(name = "字典类型")
    @NotBlank(message = "字典类型不能为空")
    @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
    @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头，且只能为（小写字母，数字，下滑线）")
    private String dictType;
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    @Data
    public static class primaryKey {
        private final BigInteger dictId;
        public primaryKey(BigInteger dictId) {
            this.dictId = dictId;
        }
    }

    public void setDictName(String dictName) {
        this.dictName = trim(dictName);
    }

    public void setDictType(String dictType) {
        this.dictType = trim(dictType);
    }
}
